/**
 * 补卡（添加|修改）videoProject.js
 * 版本号： v1.0.0
 */
$(function(){
    //设置输入框的最大输入长度
    $(".easyui-textbox").each(function(){
        var data_options = $(this).attr("data-options");
        if(data_options){
            var matchs = data_options.match(/length\[1,(\d*)\]/);
            if(matchs){
                $(this).textbox("textbox").attr("maxlength", matchs[1] - 0 + 1);
            }else{
                $(this).textbox("textbox").attr("maxlength", 20);
            }
        }else{
            $(this).textbox("textbox").attr("maxlength", 20);
        }
    });

    //姓名绑定
    bindCombo_userNameSel("userName_");

    //姓名选择改变绑定
    bindCombo_userNameChange("userName_");

    //操作按钮点击
    $('#optionrepairCard').bind('click', function(){
        $(".forMask").mask("数据保存中，请稍候…");
        var params = $("#repairCard_form").serialize();
        $("#repairCard_form").form("submit",{
            cache:false,
            data: params,
            url: CONTEXT_PATH + "/repairCard/save.do",
            onSubmit:function() {
                preventSubmit('repairCard_form','optionrepairCard');
                return $(this).form("validate");
            },
            success:function(data) {
                $(".forMask").unmask();
                var obj = JSON.parse(data);
                var messages = obj.message;
                var messageArr = messages.split("-");
                var projectId = messageArr[1];
                var message = messageArr[1];
                if(obj.code == 'PC_200'){
                    var url = CONTEXT_PATH + "/repairCard/index.do?prId="+projectId;
                    saveJump(obj,url);
                }else{
                    $.messager.show({ title:"操作提示", msg: message, timeout:3000, showType:"slide" });
                }
            }
        });
    });

});

/**
 * 姓名bind事件
 * @param nameControl
 */
function bindCombo_userNameSel(nameControl){
    $.ajax({
        url: CONTEXT_PATH + "/workerInfo/getWorkerCombo.do?prId=" + $("#prId_").val(),
        type: "get",
        success: function (data) {
            var nameCombo = [{'text': '--请选择--', 'value': ''}];
            for (var i = 0; i < data.length; i++) {
                nameCombo.push({"text": data[i].name, "value": data[i].id});
            }
            $("#" + nameControl).combobox("loadData", nameCombo);
           /* $("#" + nameControl).combobox({
                mode: "local",
                //onHidePanel: onComboboxHidePanel,
                filter: function (q, row) {
                    //定义当'mode'设置为'local'时如何过滤本地数据，函数有2个参数：
                    //q：用户输入的文本。
                    //row：列表行数据。
                    //返回true的时候允许行显示。
                    //return row[$(this).combobox('options').textField].indexOf(q) > -1;
                    return row["spell"].indexOf(q) >= 0;
                }
            });*/

            //判断是否为修改功能,修改模式下姓名不能修改
            var repairCardId = $('#repairCardId_').val();
            if(null != repairCardId && repairCardId != ""){
                var userId = $('#userId_').val();
                $("#" + nameControl).combobox({disabled:true});
                $("#" + nameControl).combobox("setValue", userId);
            }
        }
    })
}

/**
 * 姓名onChange事件
 * @param nameControl
 */
function bindCombo_userNameChange(nameControl) {
    $("#userName_").combobox({
        required: true,
        editable: true,
        mode: "local",
        onHidePanel: onComboboxHidePanel,
        filter: function (q, row) {
            var opts = $(this).combobox('options');
            return row[opts.textField].indexOf(q) == 0;
        },
        onSelect: function (record) {
            var repairCardId = $('#repairCardId_').val();
            if(null == repairCardId || repairCardId == ""){
                $.ajax({
                    url: CONTEXT_PATH + "/workerInfo/getWorkerMap.do",
                    data: {id: record.value},
                    type: "get",
                    success: function (data) {
                        if(null != data.id && data.id != ""){
                            $("#userId_").val(data.id);
                            $("#userNameHd_").val(data.name);
                            $("#prId_").val(data.projectId);
                            $("#repairPersonId_").val(data.userId);
                            $("#idCard_").textbox("setValue",data.idCard);
                            $("#projectName_").textbox("setValue",data.projectName);
                            $("#sex_").textbox("setValue",data.sex);
                            $("#groupName_").textbox("setValue",data.groupName);
                            $("#repairPersonName_").textbox("setValue",data.userName);
                            $("#entryDate_").textbox("setValue",data.entryDate);
                        }
                    }
                })
            }
        }
    });
}

/**
 * 处理输入检索条件不符合下来内容
 */
function onComboboxHidePanel() {
    var el = $(this);
    el.combobox('textbox').focus();
    // 检查录入内容是否在数据里
    var opts = el.combobox("options");
    var data = el.combobox("getData");
    var value = el.combobox("getValue");
    // 有高亮选中的项目, 则不进一步处理
    var panel = el.combobox("panel");
    var items = panel.find(".combobox-item-selected");
    if (items.length > 0) {
        var values = el.combobox("getValues");
        el.combobox("setValues", values);
        return;
    }
    var allowInput = opts.allowInput;
    if (allowInput) {
        var idx = data.length;
        data[idx] = [];
        data[idx][opts.textField] = value;
        data[idx][opts.valueField] = value;
        el.combobox("loadData", data);
    } else {
        // 不允许录入任意项, 则清空
        el.combobox("clear");
    }
}

/**
 * 计算日期方法(此方法在dataoption中定义，显示未被使用，实际是被使用)
 * @param nval
 */
function onSelectT(nval) {
    if(nval != ""){
        var sd = $('#repairStartDate_').datetimebox('getValue').replace(/-/g, '/'),
            ed = $('#repairEndDate_').datetimebox('getValue').replace(/-/g, '/');
        var cardRepairDate = $('#cardRepairDate_').datebox('getValue').replace(/-/g, '/');
        if(cardRepairDate == ''){
            $.messager.show({ title:'操作提示', msg:'请选择补卡日期' , timeout:3000, showType:"slide" });
            $('#repairStartDate_').datetimebox('setValue',"");
            $('#repairEndDate_').datetimebox('setValue',"");
            return;
        }
        if(sd != ''){
            var sd1 = sd.split(" ");
            var sd2 = sd1[0];
            console.log(sd2);
            if(sd2 != cardRepairDate){
                $.messager.show({ title:'操作提示', msg:'补卡开始日期与补卡日期不符' , timeout:3000, showType:"slide" });
                $('#repairStartDate_').datetimebox('setValue',"");
                return;
            }
        }
        if(ed != ''){
            var ed1 = ed.split(" ");
            var ed2 = ed1[0];
            if(ed2 != cardRepairDate){
                $.messager.show({ title:'操作提示', msg:'补卡结束日期与补卡日期不符' , timeout:3000, showType:"slide" });
                $('#repairEndDate_').datetimebox('setValue',"");
                return;
            }
        }
        if (sd != '' && ed != '') {
            if (sd > ed) {
                $.messager.show({ title:'操作提示', msg:'结束时间要 大于 开始时间' , timeout:3000, showType:"slide" });
                $('#repairEndDate_').datetimebox('setValue',"");
            } else {
                var totalMS = new Date(ed).getTime() - new Date(sd).getTime();//得到相差的毫秒数
                var hours = totalMS/(60*60*1000);
                hours = hours.toFixed(2)
                $("#workingHours_").numberbox("setValue", hours); //工时
            }
        }
    }
}

/**
 * 补卡日期改变后，同时改变补卡开始与结束时间（(此方法在dataoption中定义，显示未被使用，实际是被使用)）
 */
function mainDateChange(){
    var sd = $('#repairStartDate_').datetimebox('getValue'), ed = $('#repairEndDate_').datetimebox('getValue');
    if(sd != "" || ed != ""){
        $('#repairStartDate_').datetimebox('setValue',"");
        $('#repairEndDate_').datetimebox('setValue',"");
    }
    var mainDate = $('#cardRepairDate_').datebox('getValue');
    $('#repairStartDate_').datetimebox('setValue',mainDate+" 00:00:00");
    $('#repairEndDate_').datetimebox('setValue',mainDate+" 23:59:59");
}
